// 要求找出数字超过一般的数字
// 这个题目使用了选举法
// 遍历数组,数相同的数字自增,不同的数字相减,最后剩下的数字就是最多的那一个

class Solution 
{
public:
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 
     * @param numbers int整型vector 
     * @return int整型
     */
    int MoreThanHalfNum_Solution(vector<int>& numbers) 
    {

        int cont = -1 , cnt = 0 ;

        for (auto e : numbers)
        {

            if (cnt == 0)
            {

                cont = e ;

                cnt++ ;

            }

            else 
            {

                if (cont == e)
                {

                    ++cnt ;

                }

                else
                {

                    --cnt ;
                    
                }
            
            }
        
        }

        return cont ;
        
    }

};